perm filename BMAC.TEX[B2,JMC]1 blob
sn#769739 filedate 1984-09-18 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00011 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 % boomac revised for clttex
C00003 00003 % additional font stuff
C00004 00004 % bbnotation
C00007 00005 % formatting internal and external definitions
C00009 00006 % boo versions of special font and formatting using active chars |,/
C00012 00007 % other
C00013 00008 % bmac.fix
C00015 00009 % macros for sexpression verbatim
C00016 00010 % function definitions
C00017 00011 % setup magnification, page, font parameters
C00018 ENDMK
C⊗;
% boomac revised for clttex
%
% source on ESS,CLT
%
% see [TEX,CLT] for sources
%
% clttex.doc for documentation
% cltfnt.tex
% cltsty.tex
% cltmac.tex
% additional font stuff
\newfam\sxfam % sexp fonts
\def\normalsizehook{%
\rumnormalsizehook\def\sx{\fam\sxfam\ninett}\textfont\sxfam=\ninett}
\def\figsizehook{\rumfigsizehook%
\def\sx{\fam\sxfam\eighttt}\textfont\sxfam=\eighttt}
\let\notesizehook\rumnotesizehook
\def\chapFont{\tenbf}
\def\sectFont{\tenbf}
\def\ssectFont{\tenbf}
\def\sssectFont{\tenbf}
% bbnotation
\def\qNIL{{\sx NIL}}
\def\qT{{\sx T}}
\def\qF{{\sx F}}
\def\qtrue{{\bf true}}
\def\qfalse{{\bf false}}
\def\qat{\inmmode{\mathinner{\hbox{\bf at}}}}
\def\qa{\inmmode{\mathinner{\hbox{\bf a}}}}
\def\qaa{\inmmode{\mathinner{\hbox{\bf aa}}}}
\def\qd{\inmmode{\mathinner{\hbox{\bf d}}}}
\def\qda{\inmmode{\mathinner{\hbox{\bf da}}}}
\def\qdd{\inmmode{\mathinner{\hbox{\bf dd}}}}
\def\qad{\inmmode{\mathinner{\hbox{\bf ad}}}}
\def\qada{\inmmode{\mathinner{\hbox{\bf ada}}}}
\def\qadd{\inmmode{\mathinner{\hbox{\bf add}}}}
\def\qadda{\inmmode{\mathinner{\hbox{\bf adda}}}}
\def\qaddd{\inmmode{\mathinner{\hbox{\bf addd}}}}
\def\qn{\inmmode{\mathinner{\hbox{\bf n}}}}
\def\qeq{\inmmode{\mathrel{\hbox{\bf eq}}}}
\def\qcons{\inmmode{\mathrel{\raise .3ex\hbox{$\scriptscriptstyle{\bullet}$}}}}
\def\qapp{\inmmode{\mathrel{\ast}}}
\def\qlist#1{\inmmode{\mathopen{<} #1 \mathclose{>}}}
\def\qif{\inmmode{\mathinner{\hbox{\bf if}}\>}}
\def\qthen{\inmmode{\>\mathbin{\hbox{\bf then}}\>}}
\def\qelsif{\inmmode{\>\mathbin{\hbox{\bf else if}}\>}}
\def\qelseif{\inmmode{\>\mathbin{\hbox{\bf else if}}\>}}
\def\qelse{\inmmode{\>\mathinner{\hbox{\bf else}}\>}}
\def\qgo{\inmmode{\mathinner{\hbox{\bf go}}\>}}
\def\qequal{\inmmode{\mathrel{\dot{=}}}}
\def\qmem{\inmmode{\mathrel{\dot{\in}}}}
\def\qor{\inmmode{\mathrel{\dot{\vee}}}}
\def\qand{\inmmode{\mathrel{\dot{\wedge}}}}
\def\qnot{\inmmode{\mathinner{\dot{\lnot}}}}
\def\qlt{\inmmode{\mathrel{\dot{<}}}}
\def\qlte{\inmmode{\mathrel{\dot{\leq}}}}
\def\qgt{\inmmode{\mathrel{\dot{>}}}}
\def\qgte{\inmmode{\mathrel{\dot{\geq}}}}
\def\qp{\inmmode{\phi}}
\def\mkop#1{\inmmode{\mathinner{\hbox{\it #1}}}}
\def\div{\mathord{\hbox{\rm\char`\/}}} % forslash
% formatting internal and external definitions
\def\edefun#1#2{\hbox{!!?? External definition of /#1/ ??!!}}
\catcode`@=11 % borrow the private macros of PLAIN (with care)
% \def\begindefun#1#2{% for printing internal programs
% \par
% \noindent\llap{!!??}/#1/??!!
% % \vskip -\abovedisplayskip
% $$\let\par=\endgraf \begingroup\smallsize \ttverbatim \parskip=\z@
% \catcode`\|=0 \rightskip-5pc \defunfinish}
%
% {\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
% |obeylines % end of line is active
% |gdef|defunfinish#1↑↑M#2\enddefun{#1|vbox{#2}|endgroup|endgroup$$}}
\def\begindefun{\par\begingroup\parskip 0pt \figsize \tt\obeylines\obeyspaces
\everypar{\strut}}
\def\enddefun{\endgroup\par\noindent}
\catcode`@=12 % at signs are no longer letters
\def\beginlisp#1\endlisp{\relax}
% boo versions of special font and formatting using active chars |,/
% from manual.tex[tex,dek]
% quick and dirty mkop
\catcode`/=13
\def/#1/{\inmmode{\mathinner{\hbox{\it #1}}}}
\def\|{\leavevmode\hbox{\tt\char`\|}} % vertical line
{\obeyspaces\gdef {\ }}
% macros for verbatim scanning
\chardef\other=12
% \def\ttverbatim{\begingroup
% \catcode`\\=\other
% \catcode`\{=\other
% \catcode`\}=\other
% \catcode`\$=\other
% \catcode`\&=\other
% \catcode`\#=\other
% \catcode`\%=\other
% \catcode`\~=\other
% \catcode`\/=\other
% \catcode`\_=\other
% \catcode`\↑=\other
% \obeyspaces \obeylines \tt}
% macros for verbatim scanning
\def\ttverbatim{\begingroup
\catcode`\\=\other
\catcode`\{=\other
\catcode`\}=\other
\catcode`\$=\other
\catcode`\&=\other
\catcode`\#=\other
\catcode`\%=\other
\catcode`\~=\other
\catcode`\/=\other
\catcode`\_=\other
\catcode`\↑=\other
% \mathcode`\!="7021
\mathcode`\'="7027
\mathcode`\(="7028
\mathcode`\)="7029
\mathcode`\*="702A
% \mathcode`\+="702B
% \mathcode`\,="702C
\mathcode`\-="702D
\mathcode`\.="702E
\mathcode`\/="702F
\mathcode`\:="703A
% \mathcode`\;="703B
\mathcode`\<="703C
\mathcode`\=="703D
\mathcode`\>="703E
\mathcode`\?="703F
% \mathcode`\[="705B
\mathcode`\\="705C
% \mathcode`\]="705D
\mathcode`\_="705F
% \mathcode`\{="707B
% \mathcode`\}="707D
\obeyspaces\obeylines \tt}
\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=\z@
\catcode`\|=0 \rightskip-5pc \ttfinish}
{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character
|obeylines % end of line is active
|gdef|ttfinish#1↑↑M#2\endtt{#1|vbox{#2}|endgroup$$}}
\catcode`\|=\active
{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let↑↑M=\ \let|=\endgroup}}
% other
\def\limp{\, ⊃ \,}
\def\liff{\> ≡ \>}
\def\lor{\,\vee\,}
\def\land{\,\wedge\,}
\def\lisp{{\rm Lisp}}
\def\clisp{{\rm Common\ Lisp}}
% bmac.fix
\def\qL#1{\inmmode{\if !#1 {\cal L}\else {\cal L}↓{\rm #1}\fi}} % List
\def\qS#1{\inmmode{\if !#1 {\cal S}\else {\cal S}↓{\rm #1}\fi}} % Sexp
\def\qA#1{\inmmode{\if !#1 {\cal A}\else {\cal A}↓{\rm #1}\fi}} % Atom
\def\qC#1{\inmmode{\if !#1 {\cal C}\else {\cal C}↓{\rm #1}\fi}} % Cons
\def\qN#1{\inmmode{\if !#1 {\cal N}\else {\cal N}↓{\rm #1}\fi}} % Number
\def\qZ#1{\inmmode{\if !#1 {\cal Z}\else {\cal Z}↓{\rm #1}\fi}} % Integer
\def\qSy#1{\inmmode{\if !#1 {\cal S}\!{\it y}\else {\cal S}\!{\it y}↓{\rm #1}\fi}}
% Symbols
\def\qBot#1{\inmmode{\if !#1 \{\bot\}\else \{\bot\}↓{\rm #1}\fi}} % Bottom
\def\qAl#1{\inmmode{\if !#1 {\cal A}\!{\it l}\else {\cal A}\!{\it l}↓{\rm #1}\fi}}
% Alists
% macros for sexpression verbatim
\catcode`@=11 % borrow the private macros of PLAIN (with care)
\def\sexpbox{\hbox\bgroup
\catcode`\\=\other
\catcode`\{=\other
\catcode`\}=\other
\catcode`\$=\other
\catcode`\&=\other
\catcode`\#=\other
\catcode`\%=\other
\catcode`\~=\other
\catcode`\/=\other
\catcode`\_=\other
\catcode`\↑=\other
\obeyspaces\sx}
%{\obeylines \gdef|{\sexpbox \spaceskip\ttglue \let↑↑M=\ \let|=\egroup}}
{\obeylines\obeyspaces\gdef|{\sexpbox%
\let =\ \spaceskip\ttglue\let↑↑M=\ \let|=\egroup}}
\catcode`@=12 % at signs are no longer letters
% function definitions
\newcount\funCounter
% ex count in chap,sect
\rightapp{\funCounter}{\chapResetList}
\rightapp{\funCounter}{\sectResetList}
\def\funlab#1{\foolab{fun}{#1}}
\def\funref#1{\fooref{fun}{#1}}
\def\funpag#1{\foopag{fun}{#1}}
% setup magnification, page, font parameters
\cltpage{\magstep1}
\def\alias{[b2,jmc]}
\def\today{\jmcdate}
% \draftpages{Programming and Proving}
\bookpages
\overfullrule=0pt % set to 0 pt to make it go away
\normalsize
\raggedbottom